]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
clock: Use settings from gsettings-desktop-schemas
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 2 Dec 2010 16:28:06 +0000 (17:28 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 4 Jan 2011 16:14:00 +0000 (17:14 +0100)
A key for 12hr/24hr clock format has been added to gsettings-desktop-schemas,
so use that instead of the one from the shell clock schema.

As the setting can be controlled from the Date and Time panel of
gnome-control-center now, drop the temporary preference dialog
as well.

https://bugzilla.gnome.org/show_bug.cgi?id=633200

.gitignore
data/Makefile.am
data/clock-preferences.ui [deleted file]
data/gnome-shell-clock-preferences.desktop.in.in [deleted file]
data/org.gnome.shell.gschema.xml.in
js/Makefile.am
js/prefs/clockPreferences.js [deleted file]
js/ui/panel.js
po/POTFILES.in
src/Makefile.am
src/gnome-shell-clock-preferences.in [deleted file]

index c3669d44ced86c13d4e8aea7fcaecea3e7db681c..e043cb8509bfa8365803c3afb1a5c78b8db29044 100644 (file)
@@ -18,8 +18,6 @@ config
 configure
 data/gnome-shell.desktop
 data/gnome-shell.desktop.in
-data/gnome-shell-clock-preferences.desktop
-data/gnome-shell-clock-preferences.desktop.in
 data/gschemas.compiled
 data/org.gnome.shell.gschema.xml
 data/org.gnome.shell.gschema.valid
@@ -46,7 +44,6 @@ src/Makefile
 src/Makefile.in
 src/gnomeshell-taskpanel
 src/gnome-shell
-src/gnome-shell-clock-preferences
 src/run-js-test
 src/test-recorder
 src/test-recorder.ogg
index d8cb9064c017fa781970ef38246273aee09fee42..ece423d24a0d1581d0b590051d2d26846b4ee686 100644 (file)
@@ -1,5 +1,5 @@
 desktopdir=$(datadir)/applications
-desktop_DATA = gnome-shell.desktop gnome-shell-clock-preferences.desktop
+desktop_DATA = gnome-shell.desktop
 
 # We substitute in bindir so it works as an autostart
 # file when built in a non-system prefix
@@ -12,8 +12,6 @@ desktop_DATA = gnome-shell.desktop gnome-shell-clock-preferences.desktop
 %.desktop:%.desktop.in
        $(AM_V_GEN) sed s/^_// < $< > $@ || rm $@
 
-dist_pkgdata_DATA = clock-preferences.ui
-
 imagesdir = $(pkgdatadir)/images
 dist_images_DATA =                             \
        close-black.svg                         \
@@ -88,7 +86,6 @@ install-data-local:
 
 EXTRA_DIST =                                           \
        gnome-shell.desktop.in.in                       \
-       gnome-shell-clock-preferences.desktop.in.in     \
        $(menu_DATA)                                    \
        $(gconfschema_DATA)                             \
        $(shaders_DATA)                                 \
@@ -97,7 +94,6 @@ EXTRA_DIST =                                          \
 
 CLEANFILES =                                           \
        gnome-shell.desktop.in                          \
-       gnome-shell-clock-preferences.desktop.in        \
        $(desktop_DATA)                                 \
        $(gsettings_SCHEMAS)                            \
        gschemas.compiled
diff --git a/data/clock-preferences.ui b/data/clock-preferences.ui
deleted file mode 100644 (file)
index 2e22d9a..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0"?>
-<interface domain="gnome-shell">
-  <requires lib="gtk+" version="2.16"/>
-  <!-- interface-naming-policy project-wide -->
-  <object class="GtkDialog" id="prefs-dialog">
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Clock Preferences</property>
-    <property name="window_position">center</property>
-    <property name="type_hint">normal</property>
-    <property name="has_separator">False</property>
-    <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox1">
-        <property name="visible">True</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child>
-          <object class="GtkVBox" id="vbox1">
-            <property name="visible">True</property>
-            <property name="orientation">vertical</property>
-            <property name="spacing">18</property>
-            <child>
-              <object class="GtkFrame" id="frame1">
-                <property name="visible">True</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow_type">none</property>
-                <child>
-                  <object class="GtkAlignment" id="alignment1">
-                    <property name="visible">True</property>
-                    <property name="top_padding">6</property>
-                    <property name="left_padding">12</property>
-                    <property name="right_padding">6</property>
-                    <child>
-                      <object class="GtkHBox" id="hbox1">
-                        <property name="visible">True</property>
-                        <property name="spacing">12</property>
-                        <child>
-                          <object class="GtkRadioButton" id="12hr_radio">
-                            <property name="label" translatable="yes">_12 hour format</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="use_underline">True</property>
-                            <property name="draw_indicator">True</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkRadioButton" id="24hr_radio">
-                            <property name="label" translatable="yes">_24 hour format</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="use_underline">True</property>
-                            <property name="draw_indicator">True</property>
-                            <property name="group">12hr_radio</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-                <child type="label">
-                  <object class="GtkLabel" id="label_format">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">Clock Format</property>
-                    <attributes>
-                      <attribute name="weight" value="bold"/>
-                    </attributes>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkFrame" id="frame2">
-                <property name="visible">True</property>
-                <property name="label_xalign">0</property>
-                <property name="shadow_type">none</property>
-                <child>
-                  <object class="GtkAlignment" id="alignment2">
-                    <property name="visible">True</property>
-                    <property name="top_padding">6</property>
-                    <property name="left_padding">12</property>
-                    <child>
-                      <object class="GtkVBox" id="vbox2">
-                        <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <object class="GtkCheckButton" id="date_check">
-                            <property name="label" translatable="yes">Show the _date</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="use_underline">True</property>
-                            <property name="draw_indicator">True</property>
-                          </object>
-                          <packing>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkCheckButton" id="seconds_check">
-                            <property name="label" translatable="yes">Show seco_nds</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="use_underline">True</property>
-                            <property name="draw_indicator">True</property>
-                          </object>
-                          <packing>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-                <child type="label">
-                  <object class="GtkLabel" id="label_display">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">Panel Display</property>
-                    <attributes>
-                      <attribute name="weight" value="bold"/>
-                    </attributes>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="padding">6</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <object class="GtkButton" id="prefs_close_button">
-                <property name="label">gtk-close</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="0">prefs_close_button</action-widget>
-    </action-widgets>
-  </object>
-</interface>
diff --git a/data/gnome-shell-clock-preferences.desktop.in.in b/data/gnome-shell-clock-preferences.desktop.in.in
deleted file mode 100644 (file)
index 5886dd5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-[Desktop Entry]
-_Name=Clock
-_Comment=Customize the panel clock
-Exec=@bindir@/gnome-shell-clock-preferences
-Icon=gnome-panel-clock
-Terminal=false
-Type=Application
-StartupNotify=true
-Categories=GNOME;GTK;Settings;DesktopSettings;
-OnlyShowIn=GNOME;
-X-GNOME-ShellOnly=true
-X-GNOME-Bugzilla-Bugzilla=GNOME
-X-GNOME-Bugzilla-Product=gnome-shell
-X-GNOME-Bugzilla-Component=general
-X-GNOME-Bugzilla-Version=@VERSION@
index 031930a4bc0d98cd6d3abba42e81628ced488b52..84342685302c4b1ff4ce7c92943f3d014fc2c227 100644 (file)
 
   <schema id="org.gnome.shell.clock" path="/apps/gnome-shell/clock/"
           gettext-domain="@GETTEXT_PACKAGE@">
-    <key name="format" type="s">
-      <default l10n="messages" context="hour_format">
-      <!-- TRANSLATORS: This is the default hour format, choose ONLY '12-hour' or '24-hour'. -->
-        "12-hour"
-      </default>
-      <_summary>Hour format</_summary>
-      <_description>
-        This key specifies the hour format used by the panel clock.
-        Possible values are "12-hour", "24-hour", "unix" and "custom". If set
-        to "unix", the clock will display time in seconds since Epoch,
-        i.e. 1970-01-01. If set to "custom", the clock will display time
-        according to the format specified in the custom_format key. Note that
-        if set to either "unix" or "custom", the show_date and show_seconds
-        keys are ignored.
-      </_description>
-      <choices>
-        <choice value="12-hour"/>
-        <choice value="24-hour"/>
-        <choice value="unix"/>
-        <choice value="custom"/>
-      </choices>
-    </key>
-    <key name="custom-format" type="s">
-      <default>''</default>
-      <_summary>Custom format of the clock</_summary>
-      <_description>
-        This key specifies the format used by the panel clock when the format
-        key is set to "custom". You can use conversion specifiers understood
-        by strftime() to obtain a specific format. See the strftime() manual
-        for more information.
-      </_description>
-    </key>
     <key name="show-seconds" type="b">
       <default>false</default>
       <_summary>Show time with seconds</_summary>
       <_description>
-        If true and format is either "12-hour" or "24-hour", display seconds in time.
+        If true, display seconds in time.
       </_description>
     </key>
     <key name="show-date" type="b">
       <default>false</default>
       <_summary>Show date in clock</_summary>
       <_description>
-        If true and format is either "12-hour" or "24-hour",
-        display date in the clock, in addition to time.
+        If true, display date in the clock, in addition to time.
       </_description>
     </key>
   </schema>
index 462f81b9ba0731476d4d7e584a37442cf845459b..555be7b19f48deaff1a95a6122241e2c5a0a0876 100644 (file)
@@ -11,7 +11,6 @@ nobase_dist_js_DATA =         \
        misc/telepathy.js       \
        misc/utils.js           \
        perf/core.js            \
-       prefs/clockPreferences.js \
        ui/altTab.js            \
        ui/appDisplay.js        \
        ui/appFavorites.js      \
diff --git a/js/prefs/clockPreferences.js b/js/prefs/clockPreferences.js
deleted file mode 100644 (file)
index f35d8e2..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
-
-const Gio = imports.gi.Gio;
-const GLib = imports.gi.GLib;
-const Gtk = imports.gi.Gtk;
-
-const Lang = imports.lang;
-const Signals = imports.signals;
-
-const Gettext = imports.gettext;
-
-const FORMAT_KEY       = 'format';
-const SHOW_DATE_KEY    = 'show-date';
-const SHOW_SECONDS_KEY = 'show-seconds';
-
-
-function ClockPreferences(uiFile) {
-    this._init(uiFile);
-};
-
-ClockPreferences.prototype = {
-    _init: function(uiFile) {
-        let builder = new Gtk.Builder();
-        builder.add_from_file(uiFile);
-
-        this._dialog = builder.get_object('prefs-dialog');
-        this._dialog.connect('response', Lang.bind(this, this._onResponse));
-
-        this._12hrRadio = builder.get_object('12hr_radio');
-        this._24hrRadio = builder.get_object('24hr_radio');
-        this._dateCheck = builder.get_object('date_check');
-        this._secondsCheck = builder.get_object('seconds_check');
-
-        delete builder;
-
-        this._settings = new Gio.Settings({ schema: 'org.gnome.shell.clock' });
-        this._notifyId = this._settings.connect('changed',
-                                                Lang.bind(this,
-                                                          this._updateDialog));
-
-        this._12hrRadio.connect('toggled', Lang.bind(this,
-            function() {
-                let format = this._12hrRadio.active ? '12-hour' : '24-hour';
-                this._settings.set_string(FORMAT_KEY, format);
-            }));
-        this._dateCheck.connect('toggled', Lang.bind(this,
-            function() {
-                this._settings.set_boolean(SHOW_DATE_KEY,
-                                           this._dateCheck.active);
-            }));
-        this._secondsCheck.connect('toggled', Lang.bind(this,
-            function() {
-                this._settings.set_boolean(SHOW_SECONDS_KEY,
-                                           this._secondsCheck.active);
-            }));
-
-        this._updateDialog();
-    },
-
-    show: function() {
-        this._dialog.show_all();
-    },
-
-    _updateDialog: function() {
-        let format = this._settings.get_string(FORMAT_KEY);
-        this._12hrRadio.active = (format == "12-hour");
-        this._24hrRadio.active = (format == "24-hour");
-
-        this._dateCheck.active = this._settings.get_boolean(SHOW_DATE_KEY);
-        this._secondsCheck.active = this._settings.get_boolean(SHOW_SECONDS_KEY);
-    },
-
-    _onResponse: function() {
-        this._dialog.destroy();
-        this._settings.disconnect(this._notifyId);
-        this.emit('destroy');
-    }
-};
-Signals.addSignalMethods(ClockPreferences.prototype);
-
-function main(params) {
-    if ('progName' in params)
-        GLib.set_prgname(params['progName']);
-    if ('localeDir' in params)
-        Gettext.bindtextdomain('gnome-shell', params['localeDir']);
-
-    Gtk.init(null, null);
-
-    let clockPrefs = new ClockPreferences(params['uiFile']);
-    clockPrefs.connect('destroy',
-                       function() {
-                           Gtk.main_quit();
-                       });
-    clockPrefs.show();
-
-    Gtk.main();
-}
index e797a36f9751003eb03fda617d0f6397e02d9c2f..eb994d17201d1fcd48b69bdf381bcbdcda32df3a 100644 (file)
@@ -40,8 +40,10 @@ const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
 if (Config.HAVE_BLUETOOTH)
     STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['bluetooth'] = imports.ui.status.bluetooth.Indicator;
 
-const CLOCK_FORMAT_KEY        = 'format';
-const CLOCK_CUSTOM_FORMAT_KEY = 'custom-format';
+// in org.gnome.desktop.interface
+const CLOCK_FORMAT_KEY        = 'clock-format';
+
+// in org.gnome.shell.clock
 const CLOCK_SHOW_DATE_KEY     = 'show-date';
 const CLOCK_SHOW_SECONDS_KEY  = 'show-seconds';
 
@@ -492,36 +494,32 @@ function ClockButton() {
 }
 
 ClockButton.prototype = {
-    __proto__: PanelMenu.Button.prototype,
-
     _init: function() {
-        PanelMenu.Button.prototype._init.call(this, St.Align.START);
-        this.menu.addAction(_("Preferences"), Lang.bind(this, this._onPrefs));
+        this.actor = new St.Bin({ style_class: 'panel-button',
+                                  reactive: true,
+                                  can_focus: true,
+                                  x_fill: true,
+                                  y_fill: false,
+                                  track_hover: true });
+        this.actor._delegate = this;
+        this.actor.connect('button-press-event',
+                           Lang.bind(this, this._toggleCalendar));
 
         this._clock = new St.Label();
         this.actor.set_child(this._clock);
 
         this._calendarPopup = null;
 
+        this._desktopSettings = new Gio.Settings({ schema: 'org.gnome.desktop.interface' });
         this._clockSettings = new Gio.Settings({ schema: 'org.gnome.shell.clock' });
+
+        this._desktopSettings.connect('changed', Lang.bind(this, this._updateClock));
         this._clockSettings.connect('changed', Lang.bind(this, this._updateClock));
 
         // Start the clock
         this._updateClock();
     },
 
-    _onButtonPress: function(actor, event) {
-        let button = event.get_button();
-        let menuShowing = this.menu.isOpen;
-        let calendarShowing = this._calendarPopup && this._calendarPopup.isOpen;
-
-        if (menuShowing || (button == 3 && !calendarShowing))
-            this.menu.toggle();
-        else
-            this._toggleCalendar();
-        return true;
-    },
-
     closeCalendar: function() {
         if (!this._calendarPopup || !this._calendarPopup.isOpen)
             return;
@@ -537,24 +535,12 @@ ClockButton.prototype = {
         this.actor.add_style_pseudo_class('pressed');
     },
 
-    _onPrefs: function() {
-        let args = ['gnome-shell-clock-preferences'];
-        let p = new Shell.Process({ args: args });
-
-        p.run();
-    },
-
     _toggleCalendar: function() {
         if (this._calendarPopup == null) {
             this._calendarPopup = new CalendarPopup();
             this._calendarPopup.actor.hide();
         }
 
-        if (this.menu.isOpen && !this._calendarPopup.isOpen) {
-            this.menu.close();
-            return;
-        }
-
         if (!this._calendarPopup.isOpen)
             this.openCalendar();
         else
@@ -562,23 +548,13 @@ ClockButton.prototype = {
     },
 
     _updateClock: function() {
-        let format = this._clockSettings.get_string(CLOCK_FORMAT_KEY);
+        let format = this._desktopSettings.get_string(CLOCK_FORMAT_KEY);
         let showDate = this._clockSettings.get_boolean(CLOCK_SHOW_DATE_KEY);
         let showSeconds = this._clockSettings.get_boolean(CLOCK_SHOW_SECONDS_KEY);
 
         let clockFormat;
         switch (format) {
-            case 'unix':
-                // force updates every second
-                showSeconds = true;
-                clockFormat = '%s';
-                break;
-            case 'custom':
-                // force updates every second
-                showSeconds = true;
-                clockFormat = this._clockSettings.get_string(CLOCK_CUSTOM_FORMAT_KEY);
-                break;
-            case '24-hour':
+            case '24h':
                 if (showDate)
                    /* Translators: This is the time format with date used
                        in 24-hour mode. */
@@ -590,7 +566,7 @@ ClockButton.prototype = {
                     clockFormat = showSeconds ? _("%a %R:%S")
                                               : _("%a %R");
                 break;
-            case '12-hour':
+            case '12h':
             default:
                 if (showDate)
                    /* Translators: This is a time format with date used
@@ -803,9 +779,6 @@ Panel.prototype = {
         this._clockButton = new ClockButton();
         this._centerBox.add(this._clockButton.actor, { y_fill: true });
 
-        let clockMenuManager = new PopupMenu.PopupMenuManager(this);
-        clockMenuManager.addMenu(this._clockButton.menu);
-
         /* right */
 
         // System status applets live in statusBox, while legacy tray icons
index b0e2831cb0b2b1869aee0fd165bfd734f60f4390..5ac0ba766cce4c46989d76dedf2d5d4c5cda474e 100644 (file)
@@ -1,8 +1,6 @@
 data/gnome-shell.desktop.in.in
-data/gnome-shell-clock-preferences.desktop.in.in
 data/org.gnome.shell.gschema.xml.in
 data/org.gnome.accessibility.magnifier.gschema.xml.in
-[type: gettext/glade]data/clock-preferences.ui
 js/ui/appDisplay.js
 js/ui/appFavorites.js
 js/ui/dash.js
index e79a486fe87a26eadd87d1696d003d15f867cb75..fa9804b72e0bd3355bcd013695039c14ad8ca56d 100644 (file)
@@ -8,7 +8,7 @@ noinst_PROGRAMS =
 
 .AUTOPARALLEL:
 
-bin_SCRIPTS = gnome-shell gnome-shell-clock-preferences
+bin_SCRIPTS = gnome-shell
 
 gnome-shell: gnome-shell.in
        $(AM_V_GEN) sed -e "s|@MUTTER_BIN_DIR[@]|$(MUTTER_BIN_DIR)|" \
@@ -23,15 +23,6 @@ gnome-shell: gnome-shell.in
 CLEANFILES += gnome-shell
 EXTRA_DIST += gnome-shell.in
 
-gnome-shell-clock-preferences: gnome-shell-clock-preferences.in
-       $(AM_V_GEN) sed -e "s|@datadir[@]|$(datadir)|" \
-           -e "s|@pkgdatadir[@]|$(pkgdatadir)|" \
-           -e "s|@localedir[@]|$(datadir)/locale|" \
-           -e "s|@GJS_CONSOLE[@]|$(GJS_CONSOLE)|" \
-           $< > $@ && chmod a+x $@
-CLEANFILES += gnome-shell-clock-preferences
-EXTRA_DIST += gnome-shell-clock-preferences.in
-
 include Makefile-gdmuser.am
 include Makefile-st.am
 include Makefile-tray.am
diff --git a/src/gnome-shell-clock-preferences.in b/src/gnome-shell-clock-preferences.in
deleted file mode 100644 (file)
index 76391a8..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-if [ -f "$0.in" ]
-then
-  scriptDir="`dirname $0`"
-  uiDir="$scriptDir/../data"
-  jsDir="$scriptDir/../js"
-  schemaDir="$scriptDir/../data"
-else
-  uiDir="@pkgdatadir@"
-  jsDir="@pkgdatadir@/js"
-  schemaDir="@datadir@/glib-2.0/schemas"
-fi
-
-progName="`basename $0`"
-localeDir="@localedir@"
-uiFile="$uiDir/clock-preferences.ui"
-export GJS_PATH="$jsDir"
-export GSETTINGS_SCHEMA_DIR="$schemaDir"
-
-@GJS_CONSOLE@ --js-version 1.8 -c "const ClockPreferences = imports.prefs.clockPreferences;
-ClockPreferences.main({ progName: '$progName',
-                        uiFile: '$uiFile',
-                        localeDir: '$localeDir' });"